package org.nfIt.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.nfIt.entity.system.SysMenu;

import java.util.List;

/**
 * ClossName:SysMenuMapper
 * Pakage:org.nfIt.mapper
 * Description
 *
 * 菜单管理
 *
 * @Author L
 * @Create 2024/6/24 19:20
 * @Version 2023.1.3
 */
@Mapper
public interface SysMenuMapper {
    /**
     * 查询所有菜单列表
     */
    List<SysMenu> findNodes();

    /**
     * 添加菜单
     * @param sysMenu 实体
     */
    void save(SysMenu sysMenu);

    /**
     * 修改菜单
     * @param sysMenu
     */
    void updateById(SysMenu sysMenu);

    /**
     * 删除菜单
     * @param id
     */
    void deleteById(Long id);

    /**
     * 查询父节点是否有子节点
     * @param id
     */
    int countByParentId(Long id);

    /**
     * 查询用户可以操作的菜单
     * @param userId 当前用户id
     */
    List<SysMenu> selectListByUserId(Long userId);

    /**
     * 查询是否存在父节点
     * @param parentId
     */
    SysMenu selectParentMenu(Long parentId);
}
